#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

typedef struct Student {
    int stuNum;
    char name[50];
    int numCourses;
    char** courseNames;
    float* grades;
} Student;

typedef struct Node {
    struct Student student;
    struct Node* next;
    struct Node* prev;
} Node;

#define MAX_COURSES 50;

void welcome();
void saveStudent(Node* head);
void loadStudent(Node* head);
void inputStudent(Node* head);
void printStudent(Node* head);
int countStudent(Node* head);
int findStudent(Node* head, int choice);
void changeStudent(Node* head);
void deleteStudent(Node* head);
void sortStudent(Node* head);
int sumCount(Student student);
void swapStudents(Node* a, Node* b);
void sortStuNum(Node* head);
Node* binarySearch(Node* head, int target);
Node* getLastNode(Node* head);
Node* getMidNode(Node* low, Node* high);